Introdução à Programação

Aula 20 - Introduction to R

O que é a linguagem R?

  • R é uma linguagem de programação e ambiente de desenvolvimento para computação estatística e gráficos.
  • R foi criado por Ross Ihaka e Robert Gentleman na Universidade de Auckland, Nova Zelândia.
  • É uma linguagem de programação de código aberto e gratuita.
  • Diferença do Python: R é mais voltado para análise de dados e estatística.
  • R é amplamente utilizado por estatísticos e analistas de dados.

Principais vantagens do R

  • R é uma linguagem de programação:
    • de e código aberto e gratuita;
    • de programação de alto nível;
    • de programação funcional;
    • de programação vetorial.

Como aprenderemos o R?

  • Foco em análise de dados e estatística (próximo semestre).
  • Aprenderemos utilizando - practice, practice, practice
  • Não começaremos com conceitos programáticos, mas sim com a prática da análise de dados
  • Aprenderemos a programar em R conforme a necessidade

O que é o Tidyverse e porque começar com ele?

  • O Tidyverse é um conjunto de pacotes para R que facilitam a manipulação e visualização de dados.
  • Foco 100% em análise de dados.
  • Todo o pacote Pandas do Python é baseado no Tidyverse.
  • Todas as funções desse pacote participam de uma filosofia comum

Semelhanças e Diferenças: Python vs. R

  • Assignação de variáveis: <- e =
  • Operações matemáticas (quase todos iguais): +, -, *, /, ^
  • Operadores lógicos (quase todos iguais): ==, !=, >, <, >=, <=
  • Estruturas de controle: if, else, for, while

Introdução ao RStudio

Criando variáveis em R

## Primeiro comando de sempre (print?)
print("Hello, World!")

## Criando uma variável em R
x <- 10
print(x)
[1] "Hello, World!"
[1] 10

Operadores lógicos em R

## Operadores lógicos em R

## Exemplo 1: 
10 == 10

## Exemplo 2
'abc' != 'bcd"
[1] TRUE
[1] TRUE

Pacotes no R

:::{.fragment}

## Instalando pacotes no R
install.packages("ggplot2")

## Carregando pacotes no R
library(ggplot2)

Tipos de dados em R

  • Character (str no Python)
  • Numeric (int e float no Python)
  • Integer (int no Python)
  • Logical (bool no Python)

Tipos de dados em R

## Character
class("Hello, World!")

## Numeric
class(10)

## Logical
class(TRUE)

## Também 'logical', mas distinto de TRUE and FALSE
class(NA)
[1] "character"
[1] "numeric"
[1] "logical"
[1] "logical"

Estruturas de dados em R: vetores

  • Vector:
    • Propriedade 1: todos os elementos do vetor devem ser do mesmo tipo (homogêneo)
    • Propriedade 2: os vetores são unidimensionais
    • Função que cria vetores: c()
## Um vetor
x <- c(1, 2, 3, 4, 5)

## Subsetting a vector
# `Pegando` o primeiro elemento
x[1]

# `Pegando` o último elemento
x[length(x)]
[1] 1
[1] 5

Estruturas de dados em R: lists

  • List:
    • Propriedade 1: os elementos da lista podem ser de tipos diferentes (heterogêneo)
    • Propriedade 2: as listas podem ser multidimensionais
    • Função que cria listas: list()
## Uma lista
minha_lista <- list(1, "a", TRUE)

## Subsetting a list
# `Pegando` o primeiro elemento (como uma lista)
minha_lista[1]

# `# `Pegando` o primeiro elemento do primeiro elemento (como um vetor)
minha_lista[[1]]
[[1]]
[1] 1
[1] 1

Estruturas de dados em R: dataframe

  • Dataframe:
    • Propriedade 1: os elementos do data frame podem ser de tipos diferentes (heterogêneo)
    • Propriedade 2: os data frames são bidimensionais
    • Função que cria data frames: data.frame()
## Uma dataframe
minha_tabela <- data.frame(x = 1:5, y = c("a", "b", "c", "d", "e"))

## Subsetting a dataframe
# `Pegando` a coluna x - método 1
minha_tabela$x

# `Pegando` a coluna x - método 2
minha_tabela[["x"]]

# `Pegando` a coluna x - método 3
minha_tabela[[1]]
[1] 1 2 3 4 5
[1] 1 2 3 4 5
[1] 1 2 3 4 5

Tidyverse - Main Functions!

  • Para ler dados:
    • read_csv() - para ler arquivos CSV
    • read_excel() - para ler arquivos Excel
    • read_table() - para ler arquivos de texto
    • read_rds() - para ler arquivos RDS
  • Para manipular dados:
    • filter() - para filtrar linhas
    • select() - para selecionar colunas
    • mutate() - para criar novas colunas
    • arrange() - para ordenar linhas
    • group_by() - para agrupar linhas
    • summarize() - para resumir dados
    • The pipe operator |> - para encadear funções
  • Para visualizar dados:
    • ggplot() - para criar gráficos